1. Field of the Invention
The present invention relates to graphical user interfaces ("GUI"). More particularly, the present invention relates to an Expand to Wells function by which the user of a graphical user interface can easily and conveniently view "windows within windows" or "wells" of objects related to objects displayed in an initial window.
2. Description of Related Art
In order to better understand the terms utilized in this patent application, a brief background definition section will be presented so that the reader will have a common understanding of the terms employed and associated with the present invention.
A "user interface" is a group of techniques and mechanisms that a person employs to interact with an object. The user interface is developed to fit the needs or requirements of the users who use the object. Commonly known user interfaces can include telephone push buttons or dials, or pushbuttons such as on a VCR or a television set remote. With a computer, many interfaces not only to allow the user to communicate with the computer but also allow the computer to communicate with the user. These would include (1) command-line user interfaces (i.e., user remembered commands which he/she enters, e.g. "C:&gt;DIR" in which "DIR" is a typical DOS command entered at the "C" prompt); (2) menu-driven user interfaces which present an organized set of choices for the user, and (3) graphical user interfaces, ("GUI") in which the user points to and interacts with elements of the interface that are visible, for example by a "mouse" controlled arrow or cursor.
An example of a GUI user interface is that which is offered by International Business Machines Corporation (IBM) under the name "Common User Access" ("CUA"). This GUI incorporates elements of object orientation (i.e., the user's focus is on objects and the concept of applications is hidden). Object orientation of the interfaces allow for an interconnection of the working environment in which each element, called an "object," can interact with every other object. The objects users require to perform their tasks and the objects used by the operating environment can work cooperatively in one seamless interface. With objected oriented programming using a GUI, the boundaries that distinguish applications from operating systems are no longer apparent or relevant to the user.
In connection with this patent application, an "object" means any visual component of a user interface that a user can work with as a unit, independent of other items, to perform a task. By way of example, a spreadsheet, one cell in a spreadsheet, a bar chart, one bar in a bar chart, a report, a paragraph in a report, a database, one record in a database, and a printer are all objects. Each object can be represented by one or more graphic images, called "icons," with which a user interacts, much as a user interacts with objects in the real world. (NOTE: In the real world, an object might be an item that a person requires to perform work. As an example, an architect's objects might include a scale, T-square, a sharp pencil etc. while an accountant's objects might include a ledger and a calculator.) However, it is not required that an object always be represented by an icon, and not all interaction is accomplished by way of icons. For example, a user can interact with an object by opening a window that displays more information about the object and includes a variety of mechanisms for interacting with the object.
While classification of objects may follow many different definitions, each class of objects has a primary purpose that separates it from the other classes. A class may be looked at as a group of objects that have similar behavior and information structures. In addition, each of the objects enumerated and defined below may contain other objects. There are three primary classes of objects. Each is discussed below.
(1) Container Object: This object holds other objects. Its principal purpose is to provide the user with a way to hold or group related objects for easy access or retrieval. An operating system, e.g. OS/2.RTM. (a trademark of IBM Corporation) or Windows.RTM. (a trademark of Microsoft Corporation), typically provides a general-purpose container, for example a folder or a program group--that holds any type of object, including other containers. For example, imagine a program group (or folder) labeled "PRIVATE FOLDER--ICONS". In the program group are three folder icons labeled "REPORTS", "PORTFOLIO" and "LETTERS". By selecting with a mouse or other pointing device the icon "PORTFOLIO", another window may open showing three more icons labeled "OIL PAINTINGS", "WATERCOLORS", and "PORTRAITS". In turn, selecting any of those three icons may open additional windows with further icons representing further subdivisions, or cross-references (e.g. , "CUSTOMERS").
(2) Data Objects: The principal purpose of a data object is to convey information. This information may be textual or graphical information or even audio or video information. For example, a business report displayed on the computer monitor may contain textual information concerning sales of "gadgets" over the past few years (text object) to all customers and also may contain a bar chart (graphic object) to pictorially depict, on the same monitor screen, the sales information.
(3) Device Objects: The principal purpose of a device object is to provide a communication vehicle between the computer and another physical or logical object. Many times the device object represents a physical object in the real world. For example, a mouse object or icon can represent the user's pointing device, and a modem object can represent the user's modem, or a printer object or icon can represent the user's printer. Other device objects are purely logical, e.g. an out-basket icon representing outgoing electronic mail; a wastebasket object or icon representing a way the user may "trash" or dispose of other objects.
As can be seen from the foregoing, a class of objects may be defined as a description of the common characteristics of several objects, or a template or model which represents how the objects contained in the class are structured. While there are further ways in which to define objects and class of objects, typically each class of objects will include similar attributes, the values of which the user will alter, modify, replace or remove from time to time. (For a more complete discussion of objects, attributes, object oriented interfaces etc. see "Object Oriented Interface Design: IBM Common User Access" (published by Que ISBN 1-56529-170-0).
In a graphical use interface, a window frequently contains one or more objects that are related to other objects. The related objects are not initially displayed. To view the related objects the user typically must double-click on the object shown. A window, called a "well," or a "window within a window" then appears containing all of the related objects. A separate window is opened for each well. Alternatively, in other graphical user interfaces, the user must drop a display control function on the object shown. A well then appears containing all of the objects related to the one on which the display control function was dropped. The display control function represents the class of objects that will be displayed in the well. A separate display control is needed for each well, which is confusing and inconvenient for the user.
The two mechanisms known in the art for accessing a well thus are problematic. The double click method requires user precision and can yield a confusing number of overlapping windows if more than one well is pulled up. The display control function mechanism is confusing for the user since a separate display control function is needed for each possible well.